// using System;
// using System.Threading;
// using System.Threading.Tasks;
// using UnityEngine;
// using UnityEngine.AddressableAssets;
// using UnityEngine.ResourceManagement.AsyncOperations;

// public class ResourceLoader : MonoBehaviour
// {
//     private CancellationTokenSource _cancellationTokenSource;
//     private AsyncOperationHandle<GameObject> _loadHandle;

//     // 开始加载资源
//     public async void StartLoadingResource()
//     {
//         _cancellationTokenSource = new CancellationTokenSource();
//         CancellationToken token = _cancellationTokenSource.Token;

//         try
//         {
//             // 这里假设要加载的资源地址，你可以根据实际情况修改
//             string resourceAddress = "YourResourceAddress";
//             _loadHandle = Addressables.LoadAssetAsync<GameObject>(resourceAddress);

//             // 异步等待资源加载完成
//             await _loadHandle.Task.WithCancellation(token);

//             if (_loadHandle.Status == AsyncOperationStatus.Succeeded)
//             {
//                 GameObject loadedObject = _loadHandle.Result;
//                 // 资源加载成功，进行后续操作，例如实例化对象
//                 Instantiate(loadedObject);
//                 Debug.Log("资源加载成功");
//             }
//             else
//             {
//                 Debug.LogError("资源加载失败");
//             }
//         }
//         catch (OperationCanceledException)
//         {
//             // 任务被取消
//             Addressables.Release(_loadHandle);
//             Debug.Log("资源加载任务已取消");
//         }
//         catch (Exception ex)
//         {
//             // 处理其他异常
//             Addressables.Release(_loadHandle);
//             Debug.LogError($"加载资源时发生错误: {ex.Message}");
//         }
//         finally
//         {
//             _cancellationTokenSource.Dispose();
//         }
//     }

//     // 取消加载任务
//     public void CancelLoading()
//     {
//         if (_cancellationTokenSource != null && !_cancellationTokenSource.IsCancellationRequested)
//         {
//             _cancellationTokenSource.Cancel();
//         }
//     }
// }    